Comment utiliser R sur les clusters de calcul ?

Posted on Tue 30 June 2020 in tutoriels • 2 min read

Comment utiliser R sur les clusters de calcul

Avec Guix

Rendre guix disponible

$ source /applis/site/guix-start.sh

Rechercher ‘r’ est voué à l’échec, il vaut mieux consulter directement la liste des paquets disponibles via guix.

Le paquet s’appelle ‘r’ (en minuscule !) et les module sont nommés en général, ‘r-xxx’.

$ guix search r-dot

Ensuite, il suffit d’installer ce dont vous avez besoin :

$ guix install r r-hdf5r

# Verifications ...
$ guix package  -I 
r   4.0.0   out /gnu/store/kbbk0c2wpzxdkqcmgb879fd29zhrlral-r-4.0.0
r-hdf5r 1.3.2   out /gnu/store/s3adanhj2y6dn190b9s3938ihhs037il-r-hdf5r-1.3.2

r’ pour le nom du paquet guix et ‘R’ pour l’exécution du logiciel.

$ which R
/home/perignon/.guix-profile/bin/R

$ R

R version 4.0.0 (2020-04-24) -- "Arbor Day"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-unknown-linux-gnu (64-bit)

...

Bien que déconseillée, la méthode standard d’installation de modules R reste disponible, sous réserve d’écrire dans un chemin local/personnel :

> install.packages("Rcmdr")
Installing package into '/gnu/store/jw0bphbi6dbcfa8m4yg3g0ksmca405bd-profile/site-library'
(as 'lib' is unspecified)
Warning in install.packages("Rcmdr") :
  'lib = "/gnu/store/jw0bphbi6dbcfa8m4yg3g0ksmca405bd-profile/site-library"' is not writable
Would you like to use a personal library instead? (yes/No/cancel) yes
Would you like to create a personal library
...

Avec nix

source /applis/site/nix.sh
nix-env -f "<nixpkgs>" -iA rEnv

Et pour installer des packages R spécifiques, il faut éditer le fichier $HOME/.config/nixpkgs/config.nix et ajouter les modules nécessaires, par exemple :

{
    packageOverrides = super: let self = super.pkgs; in
    {

        rEnv = super.rWrapper.override {
            packages = with self.rPackages; [
                wavelets
                lpSolve
                capushe
                devtools
                ];
        };
    };
}

puis

nix-env -f "<nixpkgs>" -iA rEnv

Exemple de script oar

Script permettant l’exécution de commandes R décrites dans ‘/home/$USER/mes_simus/mon_calcul.R’

#!/bin/bash
# -- préciser un nom de projet --
#OAR --project NOMDUPROJET
# -- attribuer un nom au job
#OAR -n nom_du_job
# -- Demander des ressources et fixer un temps max
#OAR -l /core=1,walltime=36:00:00
# -- Charger l'environnement --
# - guix -
source /applis/site/guix-start.sh
# - ou nix -
# source /applis/site/nix.sh


# Lancement...
R CMD BATCH /home/$USER/mes_simus/mon_calcul.R

Warning

pensez à toujours utiliser des chemins absolus dans vos scripts oar (dans l’exemple, chemin absolu vers mon_calcul.R